$(function() {
	var bedGrid = $("#bedGrid");
	// 初始化
	bedGrid.datagrid({
		url : 'bedroom/list',
		fit : true,
		border : false,
		rownumbers:true,
		fitColumns : true,
		emptyMsg:"<img  src='public/images/noFive.png'>",
		pagination : true,// 是否显示分页栏
		columns : [ [
				{
					field : 'name',
					title : '寝室名称',
					align : 'center',
					width : 90,
					formatter: function(value,rec){
						return rec.name;
				}	
				},
				{
					field : 'bedroomType',
					title : '寝室类型',
					align : 'center',
					width : 90,
					formatter: function (value, rec) {
						if(rec.bedroomType =='女寝'){
							 return '<img src="public/images/female.png" title="女生寝室">';
						}else if(rec.bedroomType =='男寝'){
							 return '<img src="public/images/male.png" title="男生寝室">';
						}
				     },
				},
				{
					field : 'count',
					title : '寝室人数',
					align : 'center',
					width : 90,
				},
				{
					field : 'bed',
					title : '寝室大小',
					align : 'center',
					width : 90,
					formatter: function (value, rec) {
						return rec.bed+'/人寝';
					}
				},
				{
					field : 'studentId',
					title : '寝室长',
					align : 'center',
					width : 90,
					formatter: function (value, rec) {
						if(rec.studentId==null){
							return '<img src="public/images/no.png" title="暂无">';;
						}else{
							return rec.studentId.name;
						}
					}

				},
				{
					field : 'state',
					title : '寝室状态',
					align : 'center',
					width : 90,	
					formatter: function (value, rec) {
						if(rec.state =='空余'){
							return '<div style="margin:0 auto;color:white;border-radius:5px;width:25px;height:25px;line-height:25px;background-color:#66CC66;font-weight:bold;font-size:15px;">'+'空'+'</div>';
						}else if(rec.state =='住满'){
							 return '<div style="margin:0 auto;color:white;border-radius:5px;width:25px;height:25px;line-height:25px;background-color:#FF6C45;font-weight:bold;font-size:15px;">'+'满'+'</div>';
						}
				     },
				},
				{
					field : 'ac',
					title : '操作',
					width : 180,
					align : 'center',
					formatter : function(value, row, index) {
						var bts = [];
						bts.push('<a data-id="'+row.id+'" data-index="'+index+'" class="ctr addstudent">添加</a>');
						bts.push('<a data-index="' + index+ '" class="ctr detail">详情</a>');
						bts.push('<a data-index="' + index+ '" class="ctr edit">编辑</a>');
						bts.push('<a data-id="' + row.id + '" data-index="'+ index + '" class="ctr delete">删除</a>');
						return bts.join('');
					}
				} ] ],
		toolbar : [ {
			iconCls : 'icon-add',
			   text : "添加寝室",
			handler : function() {
				addbedroom();
			}
		}

		]
	});
	
	var name = $("#name");
	var bedroomType = $("#bedroomType");
	var state = $("#state");
	// 检索按钮
	$("#bedroomSearch").on("click", function() {
		bedGrid.datagrid("load", {
			name : name.val(),
	 bedroomType : bedroomType.val(),
		   state : state.val(),
		});
	});
	var form = $("#bedroomSearchForm");

	$("#bedroomReset").on('click', function() {
		form.form('clear');
		// 清除查询参数
		bedGrid.datagrid("load", {});
	});

	var gridPanel = bedGrid.datagrid("getPanel");
	//进入详情页面
	gridPanel.on("click", "a.detail", function() {
		var tab = $('#tabs').tabs('getSelected'); // 获取选择的面板
		var index = this.dataset.index;
		// 如果只有下标，没有id的情况，要获取id
		var rows = bedGrid.datagrid("getRows");
		// 同下标获取对应行的数据对象
		var id = rows[index].id;

		$('#tabs').tabs('update', {
			tab: tab,
			options: {
				title: '寝室成员',
				href: 'bedroom/bedroom_details'+ (id ? ("/" + id) : "")// 新内容的URL
			}
		});
		tab.panel('refresh');
	}).on("click", "a.edit", function() {
		var index = this.dataset.index;
		// 如果只有下标，没有id的情况，要获取id
		var rows = bedGrid.datagrid("getRows");
		// 同下标获取对应行的数据对象
		var id = rows[index].id;
		addbedroom(id);
	}).on("click", "a.addstudent", function() {
		
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		
		var rows = bedGrid.datagrid("getRows");
		
		var count=rows[index].count;
		var bed=rows[index].bed;
		var id = this.dataset.id;
		
		addstudent(id,count,bed);
		
		
	}).on("click", "a.delete", function() {
		// 获取data-xxx绑定的标签属性数据
		var index = this.dataset.index;
		var id = this.dataset.id;
		$.messager.confirm("提示", "您真的要删除该寝室吗?", function(r) {
			// 点击了确定按钮，r返回的结果为true
			if (r) {
				$.get("bedroom/delete/" + id, function(rs) {
					if (rs.success) {
						$.messager.alert("提示","该寝室已被删除");
						// 刷新表格
						bedGrid.datagrid("reload");
					}
				});
			}
		});
	});
	
	/**
	 * 添加学员
	 */
	function addstudent(id,count,bed) {
		if(count!=bed){
		// 创建窗口
			var dialog = $("<div/>").dialog({
				href: "bedroom/addsutdent"+ (id ? ("/" + id) : ""),
				title: "添加学员",
				height: 430,
				width: 700,
				modal: true,
				onClose: function() {
					$(this).dialog("destroy");
					
				},
				buttons : [ {
					iconCls : 'icon-save',
					text : '确定',
					align : 'center',
					handler : function() {
						var ky = bed-count;		
						//获取复选框的选中个数
						var selRows = $('#bedRoomStudentLeftGrid').datagrid('getSelections');
							var xz=selRows.length+count;
				
							if(selRows.length>ky){
								$.messager.alert("提示", "您选择的人数过多，还能入住"+ky+"人");
							}else{
								if(selRows.length>0){
									
									//获取所选复选框中的值
									var checkedItems = $('#bedRoomStudentLeftGrid').datagrid('getChecked');
									var ids= [];
									   $.each(checkedItems, function(index, item){
										   //获取选中学员的ID
									       ids.push(item.id);
									   });						  
									// serialize方法可以获取到表单所有数据
									$.post("bedroom/savebedroomstu"+ (id ? ("/" + id) : "")+(ids?("/"+ids):"")+(xz?("/"+xz):""), function(rs) {
										if (rs.success) {
											$.messager.alert("提示","添加成功！");
											//关闭窗口
											dialog.dialog("close");
											//刷新数据表格
											 bedGrid .datagrid("reload");
											
										} else {
											$.messager.alert("提示",rs.message);
										}
									});		
								}else{
									$.messager.alert("提示", "你还没有选择要添加的学员！");
								}
								
							}	
							
					}
				}
				]
	
			});
		
		}else{
			$.messager.alert("提示", "该寝室已经住满了哦！");
		}
	}

	
	
	/**
	 *新建和编辑都调用此方法
	 */
	function addbedroom(id) {
		
		// 创建窗口
		var dialog = $("<div/>").dialog({
			href : 'bedroom/addbedroom' + (id ? ("/" + id) : ""),
			title : "添加寝室",
			height : 320,
			width : 420,
			modal : true,
			onClose : function() {
				// 窗口关闭的同时销毁此窗口
				$(this).dialog("destroy");
			},
			buttons : [ {
				iconCls : 'icon-save',
				   text : '保存',
				handler : function() {
					var bed = $("#bed").val();
					
					// 获取到表单对象
					var userForm = $("#bedroomForm");
					if(bed>0){
						// 校验表单
						if (userForm.form('validate')) {
							// serialize方法可以获取到表单所有数据
							$.post("bedroom/save", userForm.serialize(), function(rs) {
								if (rs.success) {
									
									// 刷新数据表格
									bedGrid.datagrid("reload");
									// 关闭窗口
									dialog.dialog("close");
								} else {
									$.messager.alert("提示",rs.message);
								}
							});
						}
					}else{
						$.messager.alert("输入有误！","请输入正确的床位数");
					}
				}
			}]
		});
	}

});
